# 数据库工具类
import peewee
import peewee_async

import datetime

# 导入序列化工具
from playhouse.shortcuts import model_to_dict



import pymongo

import pytz


# 设置时区
tzinfo = pytz.timezone('Asia/Shanghai')

# 创建数据库链接对象

database = peewee_async.PooledMySQLDatabase("mytornado",host="127.0.0.1",port=3306,user="root",password="root")



# 数据库类


# 角色表
class Role(peewee.Model):


	# 字段
	name = peewee.CharField(null=False,default=None)

	# audit
	# 商户后台:{"passport":"营业执照副本"}  运营 {"id":"工作证"}  流量平台 {"os":"平台资质"}
	audit = peewee.CharField(null=False,default=None)

	class Meta:
		database = database

class User(peewee.Model):

	# 字段
	username = peewee.CharField(null=False,default=None)
	password = peewee.CharField(null=False,default=None)

	# 用户状态 0 待审核  1 审核通过  2 审核拒绝  3 审核中
	state = peewee.IntegerField(null=False,default=0)

	# 用户类型  1 商户后台   2 运营后台   3 流量平台
	type = peewee.IntegerField(null=False,default=0)

	# 审核人id
	auid = peewee.IntegerField(null=False,default=0)

	# 客服id
	clientid = peewee.IntegerField(null=False,default=0)

	# 用户等级
	level = peewee.IntegerField(null=False,default=0)

	# 用户审核字段  商户后台:{"passport":"营业执照副本"}  运营 {"id":"工作证"}  流量平台 {"os":"平台资质"}
	audit = peewee.CharField(null=False,default=None)
	
	reg = peewee.DateTimeField(default=datetime.datetime.now)


	class Meta:
		database = database


# 连接mongo数据库类

class MyMongo:

	def __init__(self,tablename="code"):

		# 初始化数据库连接
		self.client = pymongo.MongoClient(host="localhost",port=27017,tz_aware=True,tzinfo=tzinfo)

		# 声明数据库
		self.db = self.client.mytornado

		if tablename == "code":
			# 声明具体表
			self.table = self.db.code
		else:
			self.table = self.db.img


	# 删除数据
	def remove(self,data):

		return self.table.delete_one(data)


	# 插入数据
	def insert(self,data):

		return self.table.insert_one(data)


	# 查询数据
	def find_one(self,data):

		res = self.table.find_one(data)

		return res

	# 查询数据 多个
	def find(self,data):

		res = self.table.find(data)

		return res

	# 修改数据
	def update_one(self,find,field,data):

		# 先查询
		mydata = self.table.find_one(find)
		# 指定字段
		mydata[field] = data
		# 修改
		res = self.table.update_one(find,{'$set':mydata})

		return res



# 序列器 单个
def myser(model,many=False):

	# 判断 

	if many == False:

		# 第一次转换
		mymodel = model_to_dict(model)

		return mymodel
	else:
		#多个转换

		return list(model.dicts())








# 创建表
Role.create_table(True)

# 删除
#User.drop_table(True)

# 添加数据
#res = User.create(username="测试账号",age=20,phone="123321231")

# print(res)

# exit(-1)

# # 查询
# res = User.get(id=1)

# # 修改

# res.username = "修改账号"
# res.save()

# print(res)

# # 删除

# User.delete().where(User.id == 2).execute()







